iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天初探tensorflow之旅系列 第 10

Day 10 模組、層和模型

  • 分享至 

  • xImage
  •  

有個基本的觀念就是需要建立模型才能實現各種功能,無論是識別數據的類型、預測連續數值或是分析時間序列數據等,所以今天我打算從基礎的模型觀念開始了解。

  1. 模組 (Module) :
    模組指的是一組功能相關的組件,它可以被單獨開發和測試,並在其他部分中重複使用。在 TensorFlow 中,模組通常指的是某個特定功能的封裝,例如卷積層、激活函數或損失函數等。它被分在 tf.Module 或 tf.keras.Model 類,可以自定義模組,讓代碼更容易管理。
    以下是簡單示範的程式碼:
import tensorflow as tf
class MyModule(tf.Module):
    def __init__(self):
        super(MyModule, self).__init__()
        self.dense = tf.keras.layers.Dense(10)
    def __call__(self, x):
        return self.dense(x)
module = MyModule()
output = module(tf.random.normal([5, 5]))
  1. 層 (Layer) :
    層是神經網路中的基本構建塊,每一層對輸入數據進行處理,並將結果傳遞給下一層。常見的層有:
    (1)卷積層 (Convolution Layer):用於處理圖像數據,提取空間特徵。
    (2)全連接層 (Fully Connected Layer):每個輸入與輸出節點連接,常用於分類任務。
    (3)池化層 (Pooling Layer):減少數據維度,保留重要特徵。
    (4)激活層 (Activation Layer):引入非線性,使網絡能夠學習複雜的函數。
    以下是使用預定義層:
import tensorflow as tf
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(32,)),
    tf.keras.layers.Dense(10, activation='softmax')
])
x = tf.random.normal((1, 32))
output = model(x)
  1. 模型 (Model) :
    模型是多個層和模組組合而成的系統,負責對輸入數據進行預測或分類,一個模型由輸入層、隱藏層和輸出層組成。常見的模型有卷積神經網絡(CNN)、循環神經網絡(RNN)等。在 TensorFlow 中,可以使用 tf.keras.Model 來定義自己的模型,或使用 tf.keras.Sequential 來按順序堆疊層。
    使用 tf.keras.Sequential:
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(32,)),
    tf.keras.layers.Dense(10, activation='softmax')
])

使用 tf.keras.Model 自定義模型:

class MyModel(tf.keras.Model):
    def __init__(self):
        super(MyModel, self).__init__()
        self.dense1 = tf.keras.layers.Dense(64, activation='relu')
        self.dense2 = tf.keras.layers.Dense(10, activation='softmax')
    def call(self, inputs):
        x = self.dense1(inputs)
        return self.dense2(x)
model = MyModel()
output = model(tf.random.normal((1, 32)))

上一篇
Day 09 梯度和自動微分
下一篇
Day 11 線性回歸
系列文
30天初探tensorflow之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言